Packet forwarding apparatus for handling multicast packet

ABSTRACT

A packet forwarding apparatus includes: a multicast determination unit that determines whether a packet that flows through a virtual network is a multicast communication packet; a multicast mapping information storage unit; a multicast mapping unit that allocates a second multicast address to a first multicast address of a newly generated multicast communication and manages these multicast addresses as a piece of mapping information; and a packet encapsulation unit that encapsulates the packet that flows through the virtual network. The packet encapsulation unit encapsulates the multicast communication packet that flows through the virtual network by using the second multicast address.

REFERENCE TO RELATED APPLICATION

This present application is a Divisional Continuation Application ofSer. No. 15/110,853 filed on Jul. 11, 2016, which is a National StageEntry of PCT/JP2015/050937 filed Jan. 15, 2015, which is based upon andclaims the benefit of the priority of Japanese patent application No.2014-005637, filed on Jan. 16, 2014, the disclosures of all which areincorporated herein in their entirety by reference thereto.

The present invention relates to a packet forwarding apparatus, acontrol apparatus, a communication system, a communication method, and aprogram. In particular, it relates to a packet forwarding apparatus, acontrol apparatus, a communication system, a communication method, and aprogram that handle multicast packets on virtual networks configured ona substrate network.

BACKGROUND

In recent years, large-scale data center environments or virtual machineenvironments thereon have increasingly been used. With this increase,SDNs (Software-Defined Networks) have been configured on such virtualmachine environments. In such cases, since a VLAN (Virtual Local AreaNetwork) or the like has problems that partitioning resources of networkapparatuses are small and settings of network nodes are complex, anoverlay network technique for configuring an edge overlay network isused.

Examples of the edge overlay network technique include tunnelingtechniques such as a VXLAN (Virtual eXtensible Local Area Network) andNVGRE (Network Virtualization using Generic Routing Encapsulation) isused (see Non Patent Literatures (NPLs) 1 and 2). In these techniques,communications on a virtual network configured on virtual machines areencapsulated and forwarded to a substrate network (physical network)configured by network nodes configuring the virtual machine environment.In these tunneling techniques, it is possible to virtually increase thevirtual-network partitioning resources by adding virtual network IDswhen encapsulation is performed. In addition, in these tunnelingtechniques, burden required for settings of network nodes is reduced byusing communications on the substrate network.

However, in these tunneling techniques, processing about broadcast,multicast, and unknown unicast is not specifically defined. It is onlydefined that an IP (Internet Protocol) multicast technique on thesubstrate network is used. While an IP multicast address could beshared, an IP multicast address is normally set per virtual network ID,and forwarding is achieved throughout the network of the virtual machineenvironment configured, namely, throughout the target virtual network(see “4.2. Broadcast Communication and Mapping to Multicast” in NPL 1and “4.1. Broadcast and Multicast Traffic” in NPL 2).

PTL 1 discloses a switch that encapsulates a packet by using a headercalled a TRILL (Transparent Interconnection of Lots of Links) header.According to Patent Literature (PTL) 1, this switch comprises: adetermining mechanism configured to determine an internal multicastgroup identifier based on a source address, a multicast address, and amulticast tree identifier field associated with a multicast packet; anda forwarding mechanism configured to forward the multicast packet basedon the internal multicast group identifier.

NPL 3 is a white paper on a network control technique called OpenFlow.By using OpenFlow, an OpenFlow switch is allowed to function as a TEPapparatus in a tunneling technique.

PTL 1: Japanese Patent Kohyo Publication No. 2013-528340A

NPL 1: M. Mahalingam, and seven others, “VXLAN: A Framework forOverlaying Virtualized Layer 2 Networks over Layer 3 Network,” [online],[searched on Nov. 11, 2013], Internet<URL:http://tools.ietf.org/pdf/draft-mahalingam-dutt-dcops-vxlan-02.pdf>

NPL 2: M. Sridharan, and nine others, “NVGRE: Network Virtualizationusing Generic Routing Encapsulation,” [online], [searched on Nov. 11,2013], Internet<URL:http://tools.ietf.org/pdf/draft-sridharan-virtualization-nvgre-01.pdf>

NPL 3: Nick McKeown, and seven others, “OpenFlow: Enabling Innovation inCampus Networks,” [online], [searched on Nov. 11, 2013], Internet<URL:http://www.openflow.org/documents/openflow-wp-latest.pdf>

SUMMARY

The following analysis has been made by the present inventor. FIG. 37illustrates an example of configuring virtual networks. Assuming that astreaming server 111 (Video VM 1) and a client terminal 112 (Client VM1) belong to a single virtual network, TEP (Tunnel End Point)apparatuses 101 and 102 in virtual switches (not illustrated) serving aspacket forwarding apparatuses (not illustrated) on the virtual networkuse a tunneling technique to perform encapsulation and decapsulation. Inthis way, the virtual network is separated from the substrate network.

Assuming that the virtual network ID (corresponding to “VNI” of theVXLAN and “TNI” of the NVGRE) of the virtual network to which thestreaming server 111 (Video VM 1) and the client terminal 112 (Client VM1) belong is 1, an IP multicast address (239.0.0.1 in the example inFIG. 37) is set for the virtual network ID=1, and the TEP apparatus 102and the TEP apparatus 101 that belong to the virtual network IDconfigure a multicast network on the substrate network. Subsequently,broadcast, multicast, and unknown unicast performed by any one of theterminals that belong to the virtual network ID=1 is communicated byusing this IP multicast address 239.0.0.1 on the substrate network.

Likewise, assuming that a streaming server 121 (Video VM 2) and a clientterminal 122 (Client VM 2) belong to another virtual network whosevirtual network ID is 2, an IP multicast address (239.0.0.2 in theexample in FIG. 37) is set for the virtual network ID=2, and the TEPapparatus 102 and a TEP apparatus 103 that belong to the virtual networkID configure a multicast network on the substrate network.

These IP multicast addresses need to be set in advance in each of theTEP apparatuses or from an external setting control apparatus when anindividual one of the virtual networks is configured. Alternatively, ifthe above division is not explicitly made, the same multicast addressmay be used. For example, while 239.0.0.2 is used for the virtualnetwork ID=2 in the example in FIG. 37, 239.0.0.1 set for the virtualnetwork ID=1 may be used for the virtual network ID=2. In this case,since all the TEP apparatuses 101 to 103 use the same IP multicastaddress 239.0.0.1, a multicast communication performed on the substratenetwork is communicated to all the TEP apparatuses. Before an individualTEP apparatus decapsulates and forwards a packet to a correspondingvirtual network, the TEP apparatus recognizes the packet by using thecorresponding virtual network ID. In this way, the TEP apparatus candetermine whether to forward the packet to the inside (to the VM side).

When a plurality of multicast communications are handled within avirtual network as described above, the original communication ranges ofthese multicast communications are different. However, as describedabove, when a multicast communication is performed on the substratenetwork, there are cases in which the communication is forwardedthroughout a virtual network. In such cases, a multicast communicationin a virtual network uses, irrespective of its multicast region, all thelines of the substrate network to which the virtual network belongs.This deteriorates the line utilization efficiency of the multicast.

The problem with the above system will be described from a differentperspective with reference to FIG. 38. FIG. 38 will be describedassuming that virtual networks having the same network ID are set to allterminals. In this state, a client terminal 212 (Client VM 1-1) and aclient terminal 213 (Client VM 1-2) perform a multicast communication ontheir virtual network since these terminals wish to receive streamingdata from a streaming server 211 (Video VM 1). Likewise, a clientterminal 222 (Client VM 2-1) and a client terminal 223 (Client VM 2-2)perform a multicast communication on their virtual network since theseterminals wish to receive streaming data from a streaming server 221(Video VM 2). In this case, while it is only sufficient that themulticast communication transmitted from the streaming server 211 flowsto a TEP apparatus 202 through a TEP apparatus 201, since the samevirtual network is established, the multicast communication is alsotransmitted to a TEP apparatus 203. Subsequently, since the terminalsahead of the TEP apparatus 203, which are the client terminal 222(Client VM 2-1) and the client terminal 223 (Client VM 2-2) in thisexample, denies receiving the multicast communication, the correctterminals receive the multicast communication. However, as illustratedin FIG. 38, the line between a router 200 and the TEP apparatus 203 orthe network resources ahead thereof is unnecessarily used.

Paragraph 0139 in PTL 1 also discloses this deterioration of theutilization efficiency of network resources by multicast. However, PTL 1only discloses filtering multicast packets based on IVNIDs (internalvirtual network IDs). Namely, PTL 1 does not disclose any mechanism ofhow IVNIDs (internal virtual network IDs) need to be set or dynamicallyshared among switches.

It is an object of the present invention to provide a packet forwardingapparatus, a control apparatus, a communication system, a communicationmethod, and a program that require less labor for previously setting IPmulticast addresses for performing multicast communications on virtualnetworks and that contribute to improvement of the communicationutilization efficiency of the substrate network.

According to a first aspect, there is provided a certain packetforwarding apparatus. This packet forwarding apparatus includes amulticast determination unit that determines whether a packet(s) thatflows through a virtual network obtained by logically dividing asubstrate network is a multicast communication packet(s). The packetforwarding apparatus also includes a multicast mapping informationstorage unit that holds a piece(s) of mapping information, each of whichincludes a first multicast address used in a virtual network obtained bylogically dividing the substrate network and a second multicast addressused from a multicast address usable in the substrate network, the firstand second multicast addresses being associated with each other. Thepacket forwarding apparatus also includes a multicast mapping unit thatallocates a second multicast address to a first multicast address of anewly generated multicast communication and manages these multicastaddresses as a piece of mapping information. The packet forwardingapparatus also includes a packet encapsulation unit that encapsulatesthe packet(s) that flows through the virtual network so that theencapsulated packet(s) reaches a correspondence packet forwardingapparatus(es) via the substrate network. The packet encapsulation unitencapsulates a multicast communication packet(s) that flows through avirtual network by using a second multicast address associated with afirst multicast address.

According to a second aspect, there is provided a control apparatus thatrealizes functions of the above packet forwarding apparatus by settingcontrol information in the above packet forwarding apparatus.

According to a third aspect, there is provided a communication systemincluding: a substrate network in which a router having a multicastfunction is arranged; the above packet forwarding apparatus; and aserver(s) that provides a virtual machine(s) that performs acommunication(s) via the substrate network and the above packetforwarding apparatus.

According to a fourth aspect, there is provided a communication method,including steps of: causing a packet forwarding apparatus that performsa communication by encapsulating a packet(s) that flows through avirtual network obtained by logically dividing a substrate network sothat the encapsulated packet(s) reaches a correspondence packetforwarding apparatus(es) via the substrate network to determine whetherthe packet(s) that flows through the virtual network is a multicastcommunication packet(s); causing, regarding the multicast communicationin the virtual network, the packet forwarding apparatus to allocate asecond multicast address used to a first multicast address used in thevirtual network obtained by logically dividing the substrate networkfrom a multicast address usable in the substrate network and managethese multicast addresses in a multicast mapping information storageunit that holds the first and second multicast addresses that areassociated with each other as a piece of mapping information; andcausing, regarding the multicast communication in the virtual network,the packet forwarding apparatus to perform encapsulation by using thesecond multicast address associated with the first multicast address.The present method is tied to a certain machine, which is a packetforwarding apparatus that processes a packet(s) that flows through avirtual network obtained by logically dividing a physical networkincluding a substrate network.

According to a fifth aspect, there is provided a computer-readablestorage medium storing a program, causing a computer included in apacket forwarding apparatus that performs a communication byencapsulating a packet(s) that flows through a virtual network obtainedby logically dividing a substrate network so that the encapsulatedpacket(s) reaches a correspondence packet forwarding apparatus(es) viathe substrate network to perform processing for: determining whether thepacket(s) that flows through the virtual network is a multicastcommunication packet(s); allocating, regarding the multicastcommunication in the virtual network, a second multicast address used toa first multicast address used in the virtual network obtained bylogically dividing the substrate network from a multicast address usablein the substrate network and managing these multicast addresses in amulticast mapping information storage unit that holds the first andsecond multicast addresses that are associated with each other as apiece of mapping information; and performing, regarding a packet(s) inthe multicast communication in the virtual network, encapsulation byusing the second multicast address associated with the first multicastaddress. The program can be recorded in a computer-readable(non-transitory) storage medium. Namely, the present invention can beembodied as a computer program product.

Each element in the packet forwarding apparatus, the control apparatus,the communication system, the communication method, and the programcontributes to solving the above problem.

The meritorious effects of the present invention are summarized asfollows.

The present invention requires less labor for previously setting IPmulticast addresses for performing multicast communications on virtualnetworks and contributes to improvement of the communication utilizationefficiency of the substrate network.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 illustrates a configuration according to an exemplary embodimentof the present invention.

FIG. 2 illustrates a configuration of a packet forwarding apparatusaccording to a first exemplary embodiment of the present invention.

FIG. 3 illustrates an example of mapping information held in the packetforwarding apparatus according to the first exemplary embodiment of thepresent invention.

FIG. 4 is a flowchart illustrating an operation that the packetforwarding apparatus according to the first exemplary embodiment of thepresent invention performs (when receiving a packet via avirtual-network interface).

FIG. 5 is a flowchart illustrating an operation that the packetforwarding apparatus according to the first exemplary embodiment of thepresent invention performs (when receiving a packet via asubstrate-network interface).

FIG. 6 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (sharing of mapping information).

FIG. 7 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (rewriting and forwarding of a multicast report(join) message).

FIG. 8 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (forwarding of multicast data).

FIG. 9 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (forwarding of a multicast report (join)message from a client).

FIG. 10 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (forwarding of multicast data to a member in agroup).

FIG. 11 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (forwarding of multicast data to members indifferent groups).

FIG. 12 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (forwarding of a query message to multicastgroups).

FIG. 13 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (forwarding of a multicast leave message from aclient).

FIG. 14 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (forwarding of a presence query message tomulticast groups).

FIG. 15 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (sharing of mapping information).

FIG. 16 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (arbitration of mapping information).

FIG. 17 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the first exemplary embodimentof the present invention (transmitting a report (join) message againbased on a mapping information arbitration result).

FIG. 18 illustrates a configuration of a packet forwarding apparatus anda multicast mapping management apparatus according to a second exemplaryembodiment of the present invention.

FIG. 19 illustrates an example of mapping information held in themulticast mapping management apparatus according to the second exemplaryembodiment of the present invention.

FIG. 20 is a flowchart illustrating an operation that the packetforwarding apparatus according to the second exemplary embodiment of thepresent invention performs (when receiving a packet via avirtual-network interface).

FIG. 21 is a flowchart illustrating an operation that the multicastmapping management apparatus according to the second exemplaryembodiment of the present invention performs (when receiving a queryabout mapping information).

FIG. 22 is a flowchart illustrating an operation that the packetforwarding apparatus according to the second exemplary embodiment of thepresent invention performs (when receiving a packet via asubstrate-network interface).

FIG. 23 is a flowchart illustrating an operation that the multicastmapping management apparatus according to the second exemplaryembodiment of the present invention performs (when receiving a mappinginformation deletion request).

FIG. 24 illustrates a specific example of an operation performed by themulticast mapping management apparatus according to the second exemplaryembodiment of the present invention (a query about a substrate-networkmulticast address).

FIG. 25 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the second exemplary embodimentof the present invention (a response of a substrate-network multicastaddress).

FIG. 26 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the second exemplary embodimentof the present invention (forwarding of a multicast report (join)message).

FIG. 27 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the second exemplary embodimentof the present invention (a query about a substrate-network multicastaddress (for a client)).

FIG. 28 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the second exemplary embodimentof the present invention (a response of a substrate-network multicastaddress (for the client)).

FIG. 29 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the second exemplary embodimentof the present invention (forwarding of a multicast report (join)message (for the client)).

FIG. 30 illustrates a specific example of an operation performed by thepacket forwarding apparatus according to the second exemplary embodimentof the present invention (forwarding of multicast data to a member in agroup).

FIG. 31 illustrates a configuration of a packet forwarding apparatusaccording to a third exemplary embodiment according to the presentinvention.

FIG. 32 illustrates a configuration of a packet forwarding apparatusaccording to a fourth exemplary embodiment according to the presentinvention.

FIG. 33 illustrates a specific example of an operation of a mappinginformation integration unit according to the fourth exemplaryembodiment of the present invention (an initial state).

FIG. 34 illustrates a specific example of an operation of a mappinginformation integration unit according to the fourth exemplaryembodiment of the present invention (sharing of integrated mappinginformation).

FIG. 35 illustrates a specific example of an operation of the packetforwarding apparatus according to the fourth exemplary embodiment of thepresent invention (forwarding of a multicast leave message from aclient).

FIG. 36 illustrates a specific example of an operation of the packetforwarding apparatus according to the fourth exemplary embodiment of thepresent invention (forwarding of multicast data to members in differentgroups).

FIG. 37 illustrates multicast between virtual networks configured byusing a tunneling technique.

FIG. 38 is the diagram that follows FIG. 37.

PREFERRED MODES

First, an outline of an embodiment of the present invention will bedescribed. In the following outline, various components are denoted byreference characters for the sake of convenience. Namely, the followingreference characters are merely used as examples to facilitateunderstanding of the present invention, not to limit the presentinvention to the illustrated modes.

As illustrated in FIG. 1, an embodiment of the present invention can berealized by a packet forwarding apparatus 1A including: a multicastdetermination unit 11 that determines whether a packet(s) that flowsthrough a virtual network obtained by logically dividing a physicalnetwork including a substrate network is a multicast communicationpacket(s); a multicast mapping information storage unit 13 that holds apiece(s) of correspondence information, each of which includes a firstmulticast address used in a virtual network obtained by logicallydividing the substrate network and a second multicast address used froma multicast address usable in the substrate network, the first andsecond multicast addresses being associated with each other; a multicastmapping unit 12 that allocates a second multicast address to a firstmulticast address of a newly generated multicast communication andmanages these multicast addresses; and a packet encapsulation unit 14that encapsulates the packet(s) that flows through the virtual networkso that the encapsulated packet(s) reaches a correspondence packetforwarding apparatus(es) via the substrate network.

Based on instructions from the multicast determination unit 11 and themulticast mapping unit 12, the packet encapsulation unit 14 encapsulatesthe multicast communication packet(s) that flows through the virtualnetwork by using a second multicast address associated with a firstmulticast address. In this way, when a multicast communication flowsfrom a virtual network to the substrate network, the multicastcommunication is encapsulated with the corresponding second multicastaddress. In the substrate network, group management and forwarding basedthereon are performed by using an existing group management protocolbased on the encapsulated second multicast address, for example. Thus,multicast packets can be forwarded to an appropriate range withoutmaking previous settings, and the communication use efficiency of thesubstrate network can be improved.

First Exemplary Embodiment

Next, a first exemplary embodiment of the present invention will bedescribed in detail with reference to the drawings. FIG. 2 illustrates aconfiguration of a packet forwarding apparatus according to the firstexemplary embodiment of the present invention. As illustrated in FIG. 2,the packet forwarding apparatus includes a multicast determination unit11, a multicast mapping unit 12, a multicast mapping information storageunit 13, a multicast mapping information sharing unit 15, a packetencapsulation unit 14, a virtual-network interface 18 that transmits andreceives communication packets to and from a virtual network, and asubstrate-network interface 19 that transmits and receives communicationpackets to and from a substrate network.

When receiving a communication packet from the virtual-network interface18, the multicast determination unit 11 determines whether thecommunication packet is a multicast packet or a multicast controlmessage. If the communication packet received from the virtual-networkinterface 18 is a multicast packet or a multicast control message, themulticast determination unit 11 transmits information about themulticast packet to the multicast mapping unit 12 and requests themulticast mapping unit 12 to perform mapping processing. If themulticast packet address is a special-purpose address such as anall-host multicast domain address (224.0.0.1 in IP version 4), themulticast determination unit 11 handles the communication packet in thesame way as it handles broadcast. Namely, the multicast determinationunit 11 does not request the multicast mapping unit 12 to performmapping processing. If the multicast determination unit 11 determinesthat the packet is not a multicast packet or a multicast controlmessage, the multicast determination unit 11 forwards the packet to thepacket encapsulation unit 14.

If the multicast mapping unit 12 is requested to perform mappingprocessing on a multicast packet, the multicast mapping unit 12 refersto the multicast mapping information storage unit 13 and extracts ordetermines a substrate-network multicast address (second multicastaddress) corresponding to the multicast packet address (first multicastaddress).

If the multicast mapping unit 12 has extracted a substrate-networkmulticast address (second multicast address) by referring to themulticast mapping information storage unit 13, the multicast mappingunit 12 requests the packet encapsulation unit 14 to performencapsulation with the extracted substrate-network multicast address(second multicast address).

If the multicast mapping unit 12 cannot extract a substrate-networkmulticast address, namely, if the multicast address is the aboveall-host multicast domain address (224.0.0.1 in IP version 4), themulticast mapping unit 12 requests the packet encapsulation unit 14 toperform encapsulation with a substrate-network multicast address setwhen the corresponding virtual network is configured.

In addition, if the multicast mapping unit 12 is requested by themulticast determination unit 11 or the packet encapsulation unit 14 toperform mapping on a multicast control message, the multicast mappingunit 12 processes the multicast control message as follows, depending onthe kind of the message.

First, if the multicast mapping unit 12 is requested to perform mappingprocessing on a multicast group report (join) message among themulticast control messages, the multicast mapping unit 12 refers to themulticast mapping information storage unit 13 and extracts asubstrate-network multicast address (second multicast address)corresponding to the reporting (joining) multicast address. If themulticast mapping unit 12 has extracted a correspondingsubstrate-network multicast address, the multicast mapping unit 12requests the packet encapsulation unit 14 to transmit the multicastreport (join) message with the substrate-network multicast address(second multicast address).

However, if the multicast mapping unit 12 cannot extract acontrol-substrate-network multicast address corresponding to thereporting (joining) multicast address, the multicast mapping unit 12determines new multicast mapping information and records acorrespondence relationship in the multicast mapping information storageunit 13. After the recording, the multicast mapping unit 12 requests themulticast mapping information sharing unit 15 to notify a differentpacket forwarding apparatus(es) of the correspondence relationship, soas to share the information. After the sharing processing, the multicastmapping unit 12 requests the packet encapsulation unit 14 to transmitthe multicast control report (join) message with the substrate-networkmulticast address (second multicast address).

If the multicast mapping unit 12 cannot extract acontrol-substrate-network multicast address (second multicast address)corresponding to the reporting (joining) multicast address, themulticast mapping unit 12 may determine new multicast mappinginformation by selecting a multicast address that is not used amongusable multicast addresses for which a condition(s), a range, etc arepreviously set.

Next, a case in which the multicast mapping unit 12 is requested toperform mapping processing on a query message among the multicastcontrol messages will be described. If the multicast mapping unit 12 isrequested to perform mapping processing on a query message among themulticast control messages, the multicast mapping unit 12 refers to themulticast mapping information storage unit 13 and extracts avirtual-network multicast address corresponding to the query multicastaddress. If the multicast mapping unit 12 has extracted a correspondingvirtual-network multicast address, the multicast mapping unit 12requests the packet encapsulation unit 14 to transmit the multicastquery message with the virtual-network multicast address. After thetransmission, the multicast mapping unit 12 performs a multicastpresence query sequence (which will be described below).

There are cases in which the multicast mapping unit 12 cannot extract acorresponding virtual-network multicast address. For example, if themulticast address is an all-host multicast domain address (224.0.0.1 inIP version 4), the multicast mapping unit 12 requests the packetencapsulation unit 14 to transmit the multicast query message withoutchanging the multicast address. After the transmission, the multicastmapping unit 12 performs the multicast presence query sequence on allmapping information. If the multicast mapping unit 12 cannot determinethe presence of a multicast client after performing the multicastpresence query sequence, the multicast mapping unit 12 deletes therelevant correspondence relationship from the multicast mappinginformation storage unit 13. If the multicast mapping unit 12 cannotextract a corresponding virtual-network multicast address other than theabove case, the multicast mapping unit 12 drops the received multicastquery message.

Next, a case in which the multicast mapping unit 12 is requested toperform mapping processing on a group leave message among the multicastcontrol messages will be described. In this case, the multicast mappingunit 12 refers to the multicast mapping information storage unit 13 andextracts a substrate-network multicast address (second multicastaddress) corresponding to the leaving multicast address. If themulticast mapping unit 12 has extracted a substrate-network multicastaddress corresponding to the leaving multicast address, the multicastmapping unit 12 requests the packet encapsulation unit 14 to transmitthe multicast leave message with the substrate-network multicastaddress.

The multicast mapping information storage unit 13 at least holds a pieceof mapping information indicating a correspondence relationship betweena multicast address (a first multicast address) in a virtual network anda multicast address (a second multicast address) in a substrate network.FIG. 3 illustrates an example of the mapping information held in themulticast mapping information storage unit 13. While not illustrated inthe example in FIG. 3, a virtual network ID or the like may beassociated with each pair of multicast addresses.

By encapsulating and decapsulating packets that flow between thesubstrate and virtual networks, the packet encapsulation unit 14connects virtual networks with each other to which packet forwardingapparatuses serving as TEP apparatuses are connected. More specifically,the packet encapsulation unit 14 performs processing as follows.

When the packet encapsulation unit 14 receives a packet that is not amulticast packet from the multicast determination unit 11, the packetencapsulation unit 14 encapsulates the packet with a communicationaddress with which the packet can be forwarded to a packet forwardingapparatus corresponding to a specified destination. More specifically,if the received packet is a unicast packet, as in the method in NPLs 1and 2, the packet encapsulation unit 14 recognizes that the receivedpacket is a communication to the address of a packet forwardingapparatus (a TEP apparatus, strictly speaking), encapsulates the packet,and forwards the packet via the substrate-network interface 19. If thereceived packet is a broadcast packet or an unknown unicast packet, thepacket encapsulation unit 14 encapsulates the packet with a multicastpacket address used to configure the virtual network and forwards thepacket via the substrate-network interface 19.

In addition. if the packet encapsulation unit 14 is requested by themulticast mapping unit 12 to encapsulate a multicast packet, the packetencapsulation unit 14 encapsulates the packet with a substrate-networkmulticast address (second multicast address) specified by the multicastmapping unit 12 and forwards the packet via the substrate-networkinterface 19. If the packet encapsulation unit 14 is requested by themulticast mapping unit 12 to forward a multicast control message, thepacket encapsulation unit 14 creates a multicast control message inaccordance with the request and performs a communication via thevirtual-network interface 18 or the substrate-network interface 19.

In addition, if the packet encapsulation unit 14 receives a packet fromthe substrate-network interface 19, the packet encapsulation unit 14determines whether the packet is an encapsulated packet and whether thepacket can be forwarded to a virtual network that is under themanagement of its corresponding packet forwarding apparatus. If thereceived packet is a packet having an address associated with a virtualnetwork under the management of its corresponding packet forwardingapparatus, the packet encapsulation unit 14 decapsulates the receivedpacket and performs a communication via the virtual-network interface18. If the decapsulated packet of the received packet is a mappinginformation sharing message, the packet encapsulation unit 14 forwardsthe mapping information sharing message to the multicast mappinginformation sharing unit 15.

If the multicast mapping information sharing unit 15 is requested by themulticast mapping unit 12 to share multicast information, the multicastmapping information sharing unit 15 creates a mapping informationsharing message indicating a correspondence relationship between avirtual-network multicast address and a substrate-network multicastaddress. The multicast mapping information sharing unit 15 notifies thepacket encapsulation unit 14 of the mapping information sharing messageand requests the packet encapsulation unit 14 to encapsulate the messagewith a multicast packet address used to configure the default virtualnetwork and to transmit the message. In this way, the mappinginformation is shared with a different packet forwarding apparatus(es).

If the multicast mapping information sharing unit 15 receives a mappinginformation sharing message from the packet encapsulation unit 14, themulticast mapping information sharing unit 15 stores the mappinginformation in the multicast mapping information storage unit 13 via themulticast mapping unit 12. If the mapping information transmitted by themapping information sharing message conflicts with existing mappinginformation, the multicast mapping information sharing unit 15 resolvesthe conflict by a predetermined conflict resolution rule (conflictresolution algorithm). There are cases in which the mapping informationtransmitted by the mapping information sharing message is not registeredas a result of the application of the conflict resolution rule. In suchcases, the multicast mapping information sharing unit 15 creates aconflict resolution message, causes the packet encapsulation unit 14 toperform encapsulation with the multicast packet address used toconfigure the virtual network, and notifies the multicast mappinginformation sharing unit(s) 15 of a different packet forwardingapparatus (es) of the encapsulated message.

The virtual-network interface 18 transmits and receives packets to andfrom a virtual network(s), and the substrate-network interface 19transmits and receives packets to and from the substrate network. Theseinterfaces 18 and 19 may be realized as a single physical interface.

Next, an operation according to the present exemplary embodiment will bedescribed in detail with reference to the drawings. FIG. 4 is aflowchart illustrating an operation that the packet forwarding apparatusaccording to the first exemplary embodiment of the present inventionperforms (when receiving a packet via the virtual-network interface). Asillustrated in FIG. 4, when receiving a packet, the virtual-networkinterface 18 transmits the received packet to the multicastdetermination unit 11. The multicast determination unit 11 determineswhether the received packet is a multicast packet or a multicastcommunication control message (step S1101).

If the received packet is not a multicast communication or a multicastcommunication control message (No in step S1101), the multicastdetermination unit 11 transmits the received packet to the packetencapsulation unit 14 and requests the packet encapsulation unit 14 toencapsulate the packet. If the packet encapsulation unit 14 holdsinformation about the unicast communication peer, the packetencapsulation unit 14 encapsulates the packet, recognizing that thecommunication is a unicast communication to a packet forwardingapparatus to which the communication peer is connected. Next, the packetencapsulation unit 14 transmits the packet to the substrate-networkinterface 19. Other than the above case (if the received packet is abroadcast packet, an unknown unicast packet, etc.), the packetencapsulation unit 14 encapsulates the packet with the substrate-networkmulticast address of the corresponding virtual network and transmits thepacket to the substrate-network interface 19. The substrate-networkinterface 19 transmits the encapsulated packet to the substrate network(step S1106).

If the received packet is a multicast communication or a multicastcommunication control message, the multicast determination unit 11transmits the packet to the multicast mapping unit 12. The multicastmapping unit 12 searches the multicast mapping information storage unit13 for mapping information in which the multicast address (firstmulticast address) of the received packet is associated with asubstrate-network multicast address (second multicast address) (stepS1102).

If the multicast mapping unit 12 finds mapping information correspondingto the received packet (Yes in step S1103), the multicast mapping unit12 transmits the received packet and the mapping information to thepacket encapsulation unit 14 and requests the packet encapsulation unit14 to encapsulate the packet. If the received packet is a multicastpacket, the packet encapsulation unit 14 encapsulates the packet with asubstrate-network multicast address (second multicast address) specifiedin the mapping information and transmits the encapsulated packet to thesubstrate-network interface 19. If the received packet is a multicastcontrol message, the packet encapsulation unit 14 replaces the controlmulticast address information with a substrate-network multicast address(second multicast address) specified in the mapping information andtransmits the packet to the substrate-network interface 19. Thesubstrate-network interface 19 transmits the encapsulated packet to thesubstrate network (step S1106).

In step S1103, if the multicast mapping unit 12 cannot find mappinginformation corresponding to the received packet, the multicast mappingunit 12 processes the multicast control message as follows, depending onthe kind of the message. First, if the received packet is a group leavemessage, the multicast mapping unit 12 drops the packet and ends thepresent processing (Leave in step S1104).

If the received packet is a group report (join) message (Report (Join)in step S1104), the multicast mapping unit 12 creates mappinginformation in which a virtual-network multicast address (firstmulticast address) and a substrate-network multicast address (secondmulticast address) are associated with each other and registers themapping information in the multicast mapping information storage unit13. To share the created mapping information, the multicast mapping unit12 creates a mapping information sharing message and requests the packetencapsulation unit 14 to encapsulate the message with thesubstrate-network multicast address of the corresponding virtualnetwork. The packet encapsulation unit 14 encapsulates the mappinginformation sharing message with the substrate-network multicast addressof the virtual network and transmits the encapsulated packet to thesubstrate network via the substrate-network interface 19 (step S1105).

Next, the multicast mapping unit 12 requests the packet encapsulationunit 14 to convert the multicast report (join) message, which is thereceived packet, by using the newly created mapping information. Thepacket encapsulation unit 14 replaces the control multicast addressinformation of the multicast report (join) message with asubstrate-network multicast address (second multicast address) specifiedin the mapping information and transmits the message to the substratenetwork via the substrate-network interface 19 (step S1106).

The multicast mapping unit 12 may create mapping information for themulticast address by selecting a substrate multicast address from amongusable substrate multicast addresses prepared in advance. In this case,it is preferable that a usable range be set per virtual network. Thispresetting may be made in various ways. For example, the presetting maybe made in an individual apparatus or by an external setting integrationcontroller when basic settings of the corresponding virtual network aremade.

In step S1104, if the received packet is a multicast communication(Multicast in S1104), the multicast mapping unit 12 requests the packetencapsulation unit 14 to encapsulate the packet with thesubstrate-network multicast address of the corresponding virtualnetwork. The packet encapsulation unit 14 encapsulates the receivedmulticast packet with the substrate-network multicast address of thecorresponding virtual network and transmits the encapsulated packet tothe substrate network via the substrate-network interface 19 (stepS1106).

Through the above processing, encapsulation control on a packet receivedfrom a virtual network is realized.

Next, an operation that the packet forwarding apparatus performs whenreceiving a packet via the substrate-network interface 19 will bedescribed. FIG. 5 is a flowchart illustrating an operation that thepacket forwarding apparatus according to the first exemplary embodimentof the present invention performs (when receiving a packet via thesubstrate-network interface).

As illustrated in FIG. 5, when receiving a packet from the substratenetwork, the substrate-network interface 19 transmits the receivedpacket to the packet encapsulation unit 14. The packet encapsulationunit 14 determines whether the received packet is an encapsulated packet(step S1201).

If the received packet is not an encapsulated packet (No in step S1201),the packet encapsulation unit 14 determines whether the received packetis a multicast control message (step S1202). If the received packet isneither an encapsulated packet nor a multicast control message, thepacket encapsulation unit 14 drops the received packet (No in stepS1202).

If the received packet is a multicast control message (Yes in stepS1202), the packet encapsulation unit 14 transmits the received packetto the multicast mapping unit 12 and requests the multicast mapping unit12 to search for mapping information corresponding to the multicastaddress of the received packet. The multicast mapping unit 12 searchesthe multicast mapping information storage unit 13 for mappinginformation corresponding to the multicast address of the receivedpacket (step S1203).

If the multicast mapping unit 12 finds mapping information correspondingto the multicast address of the received packet, the multicast mappingunit 12 forwards the received packet and the mapping information to thepacket encapsulation unit 14. If the multicast address of the receivedpacket is an all-host multicast domain address (for example, 224.0.0.1in IP version 4), the multicast mapping unit 12 requests the packetencapsulation unit 14 to forward the received packet, without convertingthe address of the received packet.

Based on the mapping information, the packet encapsulation unit 14changes the control target multicast address of the received packet(multicast control message) to a virtual-network multicast address(first multicast address). The multicast mapping unit 12 transmits thechanged multicast control message to the corresponding virtual networkvia the virtual-network interface 18. In this case, if the multicastcontrol message is a query message (Query), the packet encapsulationunit 14 performs the multicast presence query sequence (Yes in stepS1204 and S1205).

If the multicast mapping unit 12 cannot extract multicast mappinginformation corresponding to the received packet, the multicast mappingunit 12 drops the received packet and ends the present processing (No instep S1204).

In step S1201, if the received packet is an encapsulated packet (Yes instep S1201), the packet encapsulation unit 14 decapsulates the receivedpacket and extracts the internal message (step S1206).

The packet encapsulation unit 14 determines whether the decapsulatedpacket is a multicast sharing message. If the packet is not a multicastsharing message (No in step S1207), the packet encapsulation unit 14transmits the decapsulated packet to the corresponding virtual networkvia the virtual-network interface 18 (step S1208).

If the decapsulated packet is a multicast sharing message (Yes in stepS1207), the packet encapsulation unit 14 notifies the multicast mappinginformation sharing unit 15 of the multicast sharing message. Based onthe multicast sharing message, the multicast mapping information sharingunit 15 requests the multicast mapping unit 12 to register thecorresponding mapping information in the multicast mapping informationstorage unit 13. In this case, the multicast mapping information sharingunit 15 can operate a mapping information arbitration algorithm. If apriority is given to the mapping information in its correspondingapparatus as a result of the arbitration by the arbitration algorithm,the multicast mapping information sharing unit 15 transmits the mappinginformation in its corresponding apparatus to the mapping informationsharing unit(s) 15 of a different packet forwarding apparatus(es). Morespecifically, instructed by the multicast mapping information sharingunit 15, the packet encapsulation unit 14 encapsulates the multicastsharing message with the substrate-network multicast address of thecorresponding virtual network and transmits the message (step S1209).

In an example of the mapping information arbitration algorithm,priorities are set based on identifiers, and mapping information havinga higher priority is selected. Examples of the identifiers includeapparatus IDs, apparatus IF addresses, apparatus setting priorities,multicast addresses used in mapping information, and mapping informationcreation time. At least one of the above kinds may be used, and mappinginformation having a higher priority in an order may be selected.

Through the above processing, decapsulation control on a packet receivedfrom the substrate network is realized.

Next, specific operations performed by the configuration according tothe first exemplary embodiment will be described with reference to FIGS.6 to 17. Hereinafter, terms and messages used in the drawings will bedescribed. In FIGS. 6 to 17, a Video VM 1 and a Video VM 2 are streamingservers, and Client VMs 1-1, 1-2, 2-1, and 2-2 are clients that receivestreaming data from these streaming servers. A router 300 is a router(which will hereinafter be referred to as a “multicast router,” asneeded) having an IP multicast function. At least one router 300 isarranged in a substrate network. In addition, TEPs (apparatuses) 301 to303 in FIGS. 6 to 17 are each configured by the packet forwardingapparatus 1 according to the first exemplary embodiment. In thefollowing description, each of the Video VMs and Client VMs is a virtualentity that operates on a server connected to a TEP (an apparatus) byusing a server virtualization technique.

In this example, the streaming server 311 transmits streaming data tothe clients 312 and 313 by using multicast. The multicast address thatis used in this case is 225.0.0.1. Likewise, the streaming server 321transmits streaming data to the clients 322 and 323 by using multicast.The multicast address used in this case is 226.0.0.1. These twostreaming servers and four clients belong to a single group andconfigure a single virtual network. The following description will bemade assuming that 239.0.0.1 is set as the virtual-network multicastaddress used in this case and that the multicast address for mapping isused from 238.0.0.1 as needed.

In addition, in the following description, IGMP (Internet GroupManagement Protocol) will be used as a multicast group managementprotocol, and a multicast control message will be represented by “IGMP[message type] [target IP address].” Additional information attached toan individual message will be omitted. There are various message types.For example, a report (join) message will be represented as “Report(join)”, a query message as “Query,” and a leave message as “Leave.” Aleave query message GroupSpecificQuery in response to Leave is handledas “Query” as is the case with a query message. However, depending onthe implementation method, these messages may be handled separately.

A communication message will be represented as “[address] {[message]}.”Only the destination address is written. While the source address,attribute information, etc. are attached in practice, such informationis omitted in the present example. After a packet is encapsulated, sincethis communication message serves as a message body, the packet isrepresented as “[encapsulation address] {[encapsulated address]{message}}.” A mapping information sharing message will be representedas “Shared Inner [virtual network address] Outer [substrate networkaddress].” In addition, data actually handled by an application will berepresented as “DATA.”

Creation of Multicast Group, Mapping, Encapsulation

First, before a multicast service is started, the streaming server 311transmits IGMP Report (join) 225.0.0.1 as a multicast report (join)message. When receiving this packet, the TEP (packet forwardingapparatus) 301 recognizes that this packet is transmitted from a virtualnetwork (starts the processing in FIG. 4). The multicast determinationunit 11 of the TEP (packet forwarding apparatus) 301 determines thatthis packet is a multicast control message and requests the multicastmapping unit 12 to search for mapping information (steps S1101 and S1102in FIG. 4).

Unable to find the corresponding mapping information, the multicastmapping unit 12 checks the message type and determines that the messagetype is a report (join) message (Report). Thus, the multicast mappingunit 12 selects 238.0.0.1 as the corresponding substrate-networkmulticast address from the multicast address for mapping and createsmapping information. The multicast mapping unit 12 stores the createdmapping information in the multicast mapping information storage unit 13(see the first entry in FIG. 3).

The multicast mapping unit 12 transmits the created mapping informationto the multicast mapping information sharing unit 15 and requestssharing of the mapping information with a different TEP(s) (a packetforwarding apparatus(es)). The multicast mapping information sharingunit 15 creates a mapping information sharing message “Shared Inner225.0.0.1 Outer 238.0.0.1” and requests the packet encapsulation unit 14to forward the message with the multicast address used to configure thevirtual network.

The packet encapsulation unit 14 encapsulates the message with themulticast address 239.0.0.1 used to configure the virtual network andperforms a multicast communication. The multicast router 300 forwardsthe encapsulated mapping information sharing message to the other TEPapparatuses 302 and 303 that belong to the virtual network (steps S1103to S1105 in FIG. 4).

When receiving the encapsulated mapping information sharing message, theTEP apparatuses 302 and 303 handle the mapping information sharingmessage as a packet from the substrate network (starts the processing inFIG. 5). Since the packet is an encapsulated packet, the packetencapsulation unit 14 decapsulates the packet and extracts the mappinginformation sharing message “Shared Inner 225.0.0.1 Outer 238.0.0.1(S1201 to S1206 in FIG. 5). Since a mapping information sharing messageis extracted as a result of the decapsulation, the packet encapsulationunit 14 notifies the multicast mapping unit 12 of the message andrequests the multicast mapping unit 12 to store the mapping informationin the multicast mapping information storage unit 13 (S1207 to S1209 inFIG. 5). In this way, the multicast mapping information is shared. FIG.6 illustrates a flow in which the multicast report (join) message (IGMPReport (join)) is transmitted from the streaming server 311 and mappinginformation is generated and shared with the other TEPs (packetforwarding apparatuses) by using the mapping information sharingmessage.

Next, the multicast mapping unit 12 of the TEP (packet forwardingapparatus) 301 transmits the received packet “IGMP Report (join)225.0.0.1” and the created mapping information to the packetencapsulation unit 14. Based on the received information, the packetencapsulation unit 14 converts the multicast control information into asubstrate-network multicast address and creates “IGMP Report (join)238.0.0.1”. The packet encapsulation unit 14 transmits the convertedmulticast control message to the substrate network. FIG. 7 illustrates astate in which the TEP (packet forwarding apparatus) 301 has transmittedthe converted multicast control message to the substrate network.

In this way, the virtual-network multicast address 225.0.0.1 isassociated with the substrate-network multicast address 238.0.0.1, andthe multicast router 300 recognizes that only the TEP apparatus 301belongs to the multicast group 238.0.0.1.

When the streaming server 311 transmits streaming data, a message“225.0.0.1 {DATA}” flows and reaches the TEP (packet forwardingapparatus) 301, as illustrated in FIG. 8. When receiving the packet, theTEP (packet forwarding apparatus) 301 handles the packet as a packetfrom the virtual network (starts the processing in FIG. 4).

The multicast determination unit 11 in the TEP (packet forwardingapparatus) 301 determines that the packet is a multicast control messageand requests the multicast mapping unit 12 to search for mappinginformation (steps S1101 and S1102 in FIG. 4). Since the multicastmapping unit 12 finds the created mapping information, the multicastmapping unit 12 transmits the mapping information and the receivedpacket to the packet encapsulation unit 14. The packet encapsulationunit 14 encapsulates the packet based on the received information,creates a message “238.0.0.1 {225.0.0.1 {DATA}},” and transmits themessage to the substrate network. Since only the TEP (packet forwardingapparatus) 301 belongs to the multicast group 238.0.0.1, the multicastrouter 300 does not perform new forwarding (see FIG. 8).

Next, when the client 312 wishes to receive multicast data from thestreaming server 311, the client 312 transmits IGMP Report (join)225.0.0.1 as a multicast report (join) message. When receiving thispacket, the TEP (packet forwarding apparatus) 302 handles the packet asa packet from the virtual network (starts the processing in FIG. 4). Themulticast determination unit 11 in the TEP (packet forwarding apparatus)302 determines that the packet is a multicast control message andrequests the multicast mapping unit 12 to search for mapping information(steps S1101 and S1102 in FIG. 4). Since the multicast mapping unit 12finds the corresponding mapping information, the multicast mapping unit12 transmits the mapping information to the packet encapsulation unit14. Based on the received information, the packet encapsulation unit 14converts the multicast address in the multicast control information intothe substrate-network multicast address and creates “IGMP Report (join)238.0.0.1.” The packet encapsulation unit 14 transmits the convertedmulticast control message to the substrate network. In this way, the TEPapparatus 302 also joins the multicast group 238.0.0.1 (see FIG. 9).

After the above processing, as illustrated in FIG. 10, the TEP (packetforwarding apparatus) 301 encapsulates the streaming data “225.0.0.1{DATA}” transmitted from the streaming server 311 to create the message“238.0.0.1 {225.0.0.1 {DATA}}.” Subsequently, the message reaches to theTEP apparatus 302 via the multicast router 300.

When receiving the encapsulated message “238.0.0.1{225.0.0.1 {DATA}},”the TEP (packet forwarding apparatus) 302 handles the message as apacket from the substrate network (starts the processing in FIG. 5).Since the packet is an encapsulated packet, the packet encapsulationunit 14 decapsulates the packet and extracts the multicast communicationmessage “225.0.0.1 {DATA} (S1201 and S1206 in FIG. 5). Since thedecapsulation result is not a mapping information sharing message, thepacket encapsulation unit 14 transmits the multicast communicationmessage to the virtual network (S1207 and S1208 in FIG. 5). In this way,the streaming data transmitted from the streaming server 311 reaches theclient 312 as multicast data in the same virtual network (see FIG. 10).

In the same way as the above flow, when the streaming server 321 and theclient 323 join a group whose multicast address is 226.0.0.1, themulticast address is associated with a substrate-network multicastaddress 238.0.0.2 (for example, see the second entry in FIG. 3). FIG. 11illustrates a state in which packets having the above twovirtual-network multicast addresses are encapsulated with thesubstrate-network multicast addresses at the entry-side TEPs (packetforwarding apparatuses), the encapsulated packets are forwarded to thedestination TEPs (packet forwarding apparatuses), and the encapsulatedpackets are decapsulated and forwarded to the clients, respectively. Asillustrated in FIG. 11, the communication that belongs to the multicastgroup having the new multicast address 226.0.0.1 is forwarded onlybetween the TEPs (packet forwarding apparatuses) 301 and 303. Thecommunication is not forwarded to the TEP (packet forwarding apparatus)302.

As described above, a virtual-network multicast communication can becontrolled in the same way as a substrate-network multicastcommunication. In addition, multicast addresses in the substrate networkcan be distinguished. For example, 239.0.0.1 is allocated to the entirevirtual network, 238.0.0.1 to a streaming from the streaming server 311,and 238.0.0.2 to a streaming from the streaming server 321. Thus, thepresent technique can be used for load balancing and QoS control.

Maintenance and Management of Multicast Group

Next, maintenance of a multicast group will be described with referenceto FIG. 12. In IGMP, by transmitting a Query to an all-host multicastdomain address (224.0.0.1 in IP version 4), a multicast router requestsfor communication of a report (join) message IGMP Report. As illustratedin FIG. 12, the multicast router 300 creates “IGMP Query 0.0.0.0” whose1055 destination address is 224.0.0.1 and transmits “IGMP Query 0.0.0.0”to all the TEPs (packet forwarding apparatuses).

The TEPs (packet forwarding apparatuses) 301 to 303 handle the multicastcontrol message as a packet from the substrate network (starts theprocessing in FIG. 5). Since the received packet is not an encapsulatedpacket, the packet encapsulation unit 14 requests the multicast mappingunit 12 to extract mapping information (S1201 to S1203 in FIG. 5). Themulticast mapping unit 12 reports to the packet encapsulation unit 14that there is no corresponding mapping information. However, because ofthe all-host multicast address 224.0.0.1, the packet encapsulation unit14 handles the information as it is. Namely, the information istransmitted to the virtual network (S1204 and S1205 in FIG. 5). In thisway, it is possible to have individual terminals or arbitrary terminalsin the virtual network to receive the Query message and transmit Report.In addition, the multicast mapping unit 12 performs the multicastpresence query sequence. If the presence of a multicast client is notdetermined by performing the multicast presence query sequence, namely,if there is a group for which no Report is transmitted, thecorresponding mapping information is deleted from the multicast mappinginformation storage unit 13.

Leaving Multicast Group

Next, leaving a multicast group will be described with reference toFIGS. 13 and 14. After IGMP v2, when a client leaves a multicastcommunication, the client transmits a Leave message. The followingdescription will be made assuming that, as illustrated in FIG. 13, theclient 312 transmits “IGMP Leave 225.0.0.1” to leave the group. Whenreceiving this packet, the TEP (packet forwarding apparatus) 302 handlesthe packet as a packet from the virtual network (starts the processingin FIG. 4). The multicast determination unit 11 in the TEP (packetforwarding apparatus) 302 determines that the packet is a multicastcontrol message and requests the multicast mapping unit 12 to search formapping information (step S1101 and S1102 in FIG. 4). Since themulticast mapping unit 12 finds corresponding mapping information, themulticast mapping unit 12 transmits the mapping information to thepacket encapsulation unit 14. Based on the received information, thepacket encapsulation unit 14 converts the multicast control informationinto the substrate-network multicast address and creates “IGMP Leave238.0.0.1.” The packet encapsulation unit 14 transmits the convertedmulticast control message to the substrate network. In this way, themulticast router 300 receives a message indicating leaving the multicastgroup 238.0.0.1 (see FIG. 13.)

When receiving the multicast leave message, the multicast router 300transmits a presence query message “IGMP Query 238.0.0.1” as a response,to determine whether any member exists in the corresponding group. Whenreceiving the leave query message, the TEP (packet forwarding apparatus)302 handles the packet as a packet from the substrate network (startsthe processing in FIG. 5). Since the received packet is not anencapsulated packet, the packet encapsulation unit 14 requests themulticast mapping unit 12 to search for mapping information (S1201 toS1203 in FIG. 5). The multicast mapping unit 12 finds correspondingmapping information and notifies the packet encapsulation unit 14 of themapping information. By using the mapping information, the packetencapsulation unit 14 converts the message so that the multicast controladdress is handled as a virtual-network multicast address. In thisexample, as illustrated in FIG. 14, the packet encapsulation unit 14converts the message into a leave query message indicated by “IGMP Query225.0.0.1” and transmits the message to the virtual network (S1204 andS1205). In this way, it is possible to have individual terminals orarbitrary terminals in the virtual network to transmit Report. Themulticast mapping unit 12 performs the multicast presence query sequenceat this timing, too. If a multicast group in which the presence of aclient is not determined is detected by performing the multicastpresence query sequence, namely, there is no Report, the multicastmapping information storage unit 13 deletes the corresponding mappinginformation (for example, deletes the first entry in FIG. 3).

Arbitration of Mapping Information

Next, a specific example of arbitration of mapping information will bedescribed with reference to FIGS. 15 to 17. The following descriptionwill be made assuming that the client 313 joins the group whosemulticast address is 225.0.0.1 after the client 312 leaves the group. Atthis point, since the corresponding mapping information has already beendeleted, the TEP (packet forwarding apparatus) 302 newly maps themulticast address with 238.0.0.3. As illustrated in FIG. 15, the TEP(packet forwarding apparatus) 302 transmits a mapping informationsharing message “Shared Inner 225.0.0.1 Outer 238.0.0.3” to the TEPs(packet forwarding apparatuses) 301 and 303 (see FIG. 15). However,since the TEP (packet forwarding apparatus) 301 still recognizes that ahost (the streaming server 311 in this case) actually belongs to thisgroup and holds the corresponding mapping information, the mappinginformation sharing message collides with the corresponding mappinginformation. In this case, the TEP (packet forwarding apparatus) 301selects mapping information having a higher priority based on the abovearbitration rule or arbitration algorithm. The following descriptionwill be described assuming that 238.0.0.1 has a higher priority based onthe order of the multicast addresses. The TEP (packet forwardingapparatus) 301 transmits a mapping information sharing message “SharedInner 225.0.0.1 Outer 238.0.0.1” to the TEPs (packet forwardingapparatuses) 302 and 303 (see FIG. 16). In this way, the TEP (packetforwarding apparatus) 302 updates its mapping information. Subsequently,the TEP (packet forwarding apparatus) 302 can achieve consistency byallowing the client 313 to join the multicast group (see FIG. 17).

In the above specific examples, the multicast router 300 is used.However, a group of multicast routers may be used. The multicast routers300 may be realized as a group of network apparatuses including L2switches that can determine the communication range of an IGMP messageby using IGMP snooping, CGMP (Cisco Group Management Protocol), or thelike.

Advantageous effects of the present exemplary embodiment will besummarized. As described above, by adding a function of mappingvirtual-network and substrate-network multicast addresses to TEPs(packet forwarding apparatuses), the virtual-network multicast space canbe mapped with the substrate-network multicast space. Thus, the lineutilization range of a multicast communication can be limited within anecessary range. As a result, the line utilization efficiency of thecommunication is improved. In addition, as a secondary effect,virtual-network multicast communications can be sorted bysubstrate-network-side multicast addresses. Thus, by using thedifference in multicast address, a load balancing function and a QoScontrol function can be enabled on the substrate network. In addition,the difference in address can be used for failure analysis, performanceanalysis, etc. on the substrate network.

Second Exemplary Embodiment

Next, a second exemplary embodiment will be described in detail withreference to the drawings. In the second exemplary embodiment, there isadded an apparatus that manages the mapping information and the memberinformation in a centralized manner in place of individual packetforwarding apparatuses. FIG. 18 illustrates a configuration of a packetforwarding apparatus 1B and a multicast mapping management apparatus 26according to the second exemplary embodiment of the present invention.As illustrated in FIG. 18, in place of the multicast mapping informationsharing unit 15, the multicast mapping management apparatus 26 is addedoutside the packet forwarding apparatus 1B. Since other elements of thepacket forwarding apparatus 1B are approximately the same as those ofthe packet forwarding apparatus 1 according to the first exemplaryembodiment, the following description will be made with a focus on thedifference.

When a multicast mapping unit 22 according to the second exemplaryembodiment needs to create mapping information, the multicast mappingunit 22 transmits a query about the mapping information to the multicastmapping management apparatus 26.

In addition, when the multicast mapping unit 22 according to the secondexemplary embodiment needs to delete mapping information, the multicastmapping unit 22 requests the multicast mapping management apparatus 26to delete the mapping information.

By using mapping information as illustrated in FIG. 19, the multicastmapping management apparatus 26 performs maintenance and management ofmapping information in which member information is associated withvirtual-network and substrate-network multicast addresses. For example,when the multicast mapping management apparatus 26 is requested about aquery about mapping information by the multicast mapping unit 22 in anarbitrary packet forwarding apparatus such as the packet forwardingapparatus 1B, if the multicast mapping management apparatus 26 does nothold the corresponding mapping information, the multicast mappingmanagement apparatus 26 selects an arbitrary one of the multicastaddresses that can be used in the substrate network and creates mappinginformation in which the virtual-network multicast address of therequesting packet forwarding apparatus is associated with the selectedmulticast address. In addition, the requesting member is added to thecorresponding member field in the created mapping information. Next, themulticast mapping management apparatus 26 notifies the multicast mappingunit 22 in the requesting packet forwarding apparatus of the createdmapping information.

In addition, when the multicast mapping management apparatus 26 isrequested about a query about mapping information by the multicastmapping unit 22 in an arbitrary packet forwarding apparatus, if themulticast mapping management apparatus 26 holds the correspondingmapping information, the multicast mapping management apparatus 26 addsthe requesting member to the member field in the mapping information.Next, the multicast mapping management apparatus 26 notifies themulticast mapping unit 22 in the requesting packet forwarding apparatusof the mapping information.

In addition, when the multicast mapping management apparatus 26 isrequested by the multicast mapping unit 22 in an arbitrary packetforwarding apparatus to delete mapping information, the multicastmapping management apparatus 26 deletes the requesting member from themember field in the held mapping information. If all the members in themember field in the mapping information have been deleted, the multicastmapping management apparatus 26 deletes the mapping information.

The above query about and deletion of mapping information can berealized by using a substrate-network communication.

As described above, since the multicast mapping management apparatus 26that manages mapping management information in a centralized manner isarranged, the packet forwarding apparatuses do not need to perform theoperations of sharing and arbitrating mapping information.

Next, an operation according to the present exemplary embodiment will bedescribed in detail with reference to the drawings. FIG. 20 is aflowchart illustrating an operation that the packet forwarding apparatus1B according to the second exemplary embodiment of the present inventionperforms (when receiving a packet via the virtual-network interface).The operation of the packet forwarding apparatus illustrated in FIG. 20can be illustrated by a flowchart similar to that illustrated in FIG. 4.The difference is that the creation and sharing of mapping informationin step S1105 is replaced by querying the multicast mapping managementapparatus 26 about mapping information and receiving a response from themulticast mapping management apparatus 26 (see step S1105A).

FIG. 21 is a flowchart illustrating the operation that the multicastmapping management apparatus according to the second exemplaryembodiment of the present invention performs (when receiving a queryabout mapping information). As illustrated in FIG. 20, when themulticast mapping unit 22 receives a multicast report (join) message,the multicast mapping unit 22 determines whether there is mappinginformation that corresponds to the multicast address specified in thismulticast report (join) message. If the multicast mapping unit 22 cannotfind the mapping information, the multicast mapping unit 22 queries themulticast mapping management apparatus 26 about the mapping information(starts the processing in FIG. 21). The query information includes atleast a virtual network identifier and a virtual network multicastaddress.

If the multicast mapping management apparatus 26 does not hold mappinginformation that corresponds to the virtual-network multicast address ofthe requesting packet forwarding apparatus (No in step S2101), themulticast mapping management apparatus 26 selects an arbitrary multicastaddress from among the multicast addresses that can be used in thesubstrate network and creates mapping information in which the selectedmulticast address is associated with the virtual-network multicastaddress of the requesting packet forwarding apparatus (step S2102 inFIG. 21).

Next, the multicast mapping management apparatus 26 registers anidentifier of the requesting packet forwarding apparatus as a member(user) in association with the existing mapping information (Yes in stepS2101) or the mapping information created in step S2102 (step S2103).

Next, the multicast mapping management apparatus 26 transmits theexisting mapping information (Yes in step S2101) or the mappinginformation created in step S2102 to the multicast mapping unit 22 inthe requesting packet forwarding apparatus (step S2104).

When receiving the mapping information, the multicast mapping unit 22stores the mapping information in the multicast mapping informationstorage apparatus 13. Next, based on the received packet and mappinginformation, the multicast mapping unit 22 requests the packetencapsulation unit 14 to convert the packet message (step S1106 in FIG.20).

As described above, the multicast mapping unit 22 can leave creation andsharing of mapping information to the multicast mapping managementapparatus 26.

Next, an operation that the packet forwarding apparatus 1B performs whenreceiving a packet from the substrate-network interface 19 will bedescribed. FIG. 22 is a flowchart illustrating an operation that thepacket forwarding apparatus according to the second exemplary embodimentof the present invention performs (when receiving a packet via thesubstrate-network interface). The present operation differs from theoperation performed by the packet forwarding apparatus according to thefirst exemplary embodiment in FIG. 5. First, the mapping informationarbitration processing in step 1209 in FIG. 5 is deleted. Second, theflowchart in FIG. 22 includes step S1210 in which, if mappinginformation in its corresponding apparatus is deleted as a result ofexecution of the multicast query sequence in step S1205, the multicastmapping unit 22 requests the multicast mapping management apparatus 26to delete the mapping information.

As in the above first exemplary embodiment, in the present exemplaryembodiment, if the multicast mapping unit 22 detects a multicast groupthat does not have any members, the multicast mapping unit 22 deletesthe corresponding mapping information from the multicast mappinginformation storage unit 13. Next, the multicast mapping unit 22requests the multicast mapping management apparatus 26 to delete themapping information (starts the processing in FIG. 23). A request fordeleting the mapping information includes at least the mappinginformation deleted from the packet forwarding apparatus 1B.

FIG. 23 is a flowchart illustrating an operation that the multicastmapping management apparatus performs when receiving a mappinginformation deletion request. As illustrated in FIG. 23, the multicastmapping management apparatus 26 deletes the identifier of the requestingpacket forwarding apparatus registered as a member (user) from thecorresponding member field in the mapping information held in themulticast mapping management apparatus 26 (step S2201).

Next, if the member field in the mapping information from which themember (user) has been deleted does not have any members (No in stepS2202), the multicast mapping management apparatus 26 deletes themapping information (step S2203).

Through the above processing, mapping information that is not necessaryin the multicast mapping management apparatus 26 is organized.

Next, a specific operation according to the second exemplary embodimentwill be described with reference to FIGS. 24 to 30. As in the firstexemplary embodiment, a Video VM 1 and a Video VM 2 are streamingservers, and Client VMs 1-1, 1-2, 2-1, and 2-2 are clients that receivestreaming data from these streaming servers. A router 400 is a multicastrouter having an IP multicast function. In addition, TEPs (apparatuses)401 to 403 in FIGS. 24 to 30 are each configured by the packetforwarding apparatus 1B according to the second exemplary embodiment. Alarge difference from the first exemplary embodiment is that aconnection server 409 serving as the multicast mapping managementapparatus 26 is added.

Hereinafter, as representations of new messages, a query about mappinginformation is represented as “Shared query [virtual network multicastaddress]” and a response to the query is represented as “Shared map[virtual network multicast address] [substrate network multicastaddress].” For clarity, the following description will be made assumingthat a single virtual network will be used and the messagerepresentation thereof will be omitted. In addition, sincerepresentations of the other terms and messages are the same as those inthe first exemplary embodiment, description thereof will be omitted.

As illustrated in FIG. 24, if the streaming server 411 wishes to join amulticast group with 225.0.0.1 (“IGMP Report (join) 225.0.0.1”), the TEP(packet forwarding apparatus) 401 performs multicast address mappingprocessing. However, at this point, the TEP (packet forwardingapparatus) 401 does not hold the corresponding mapping information, themulticast mapping unit 22 in the TEP (packet forwarding apparatus) 401queries the connection server 409 about the mapping information bytransmitting a query message “Shared query 225.0.0.1” (see FIG. 24).

Since the connection server 409 does not hold the corresponding mappinginformation, the connection server 409 selects 238.0.0.1 as a multicastaddress that can be used in the substrate network and creates mappinginformation (No in step S2101 and S2102 in FIG. 21). In addition, theconnection server 409 stores the TEP (packet forwarding apparatus) 401as a member in the created mapping information (step S2103). Whentransmitting the created mapping information to the TEP (packetforwarding apparatus) 401, the connection server 409 creates andtransmits a mapping information response message “Shared map 225.0.0.1238.0.0.1” (see FIG. 25).

When receiving the mapping information, the TEP (packet forwardingapparatus) 401 stores the mapping information in its own multicastmapping information storage unit 13. In addition, the TEP (packetforwarding apparatus) 401 converts the report (join) message into “IGMPReport (join) 238.0.0.1” and transmits the message to the substratenetwork. As a result, the TEP (packet forwarding apparatus) 401 hasjoined the multicast address 238.0.0.1 in the substrate network (seeFIG. 26).

Subsequently, if the client 412 wishes to join the multicast group with225.0.0.1 (“IGMP Report (join) 225.0.0.1”), the TEP (packet forwardingapparatus) 402 performs multicast address mapping processing. However,at this point, the TEP (packet forwarding apparatus) 402 does not holdthe corresponding mapping information. Thus, the multicast mapping unit22 in the TEP (packet forwarding apparatus) 402 queries the connectionserver 409 about the mapping information by transmitting a query message“Shared query 225.0.0.1” (see FIG. 27).

When receiving the query message, since the connection server 409 holdsthe corresponding mapping information, the connection server 409 addsthe TEP (packet forwarding apparatus) 402 as a member in thecorresponding mapping information (see No in step S2101 and S2103 inFIG. 21 and the first entry in FIG. 19). When transmitting the mappinginformation to the TEP (packet forwarding apparatus) 402, the connectionserver 409 creates and transmits a mapping information response message“Shared map 225.0.0.1 238.0.0.1” (see FIG. 28).

When receiving the mapping information, the TEP (packet forwardingapparatus) 402 stores the mapping information in its multicast mappinginformation storage unit 13. In addition, the TEP (packet forwardingapparatus) 402 converts the report (join) message into “IGMP Report(join) 238.0.0.1” and transmits the converted message to the substratenetwork. As a result, the TEP (packet forwarding apparatus) 402 hasjoined the substrate-network multicast address 238.0.0.1 (see FIG. 29).

Through the above processing, the subsequent multicast communicationusing 225.0.0.1 from the streaming server 411 is encapsulated by theentry-side TEP (packet forwarding apparatus) 401 with thesubstrate-network multicast address and is then forwarded to thedestination TEP (packet forwarding apparatus) 402, which decapsulatesand forwards the packet to the client (see FIG. 30).

As described above, according to the present exemplary embodiment, inaddition to the advantageous effects provided by the first exemplaryembodiment, the load needed for sharing mapping information andarbitration can be reduced. This is because the multicast mappingmanagement apparatus 26 that manages mapping information in acentralized manner is arranged.

Third Exemplary Embodiment

Next, a third exemplary embodiment in which a mapping informationintegration function is added to the above first exemplary embodimentwill be described. FIG. 31 illustrates a configuration of a packetforwarding apparatus according to the third exemplary embodiment of thepresent invention. As illustrated in FIG. 31, the configuration includesa mapping information integration unit 37 in addition to theconfiguration of the packet forwarding apparatus according to the firstexemplary embodiment in FIG. 2.

When a predetermined event occurs, the mapping information integrationunit 37 integrates mapping information held in the multicast mappinginformation storage unit 13.

Based on information about packet forwarding apparatuses sharing presetmapping information, the multicast mapping unit 12 performs registrationand deletion of multicast information in synchronization with adifferent packet forwarding apparatus(es) via the multicast mappinginformation sharing unit 15.

The mapping information integration unit 37 refers to the multicastmapping information storage unit 13, searches for pieces of mappinginformation each including the same packet forwarding apparatuses, andintegrates the found pieces of mapping information together. Inaddition, if the mapping information is integrated, the mappinginformation integration unit 37 notifies the multicast mapping unit 12of the mapping information changed as a result of the integration.

Hereinafter, cases in which mapping information can be integrated 1465will be described.

(1) If pieces of mapping information have the same multicastcommunication range, the substrate-network multicast addresses can beintegrated into one of the substrate-network multicast addresses.

(2) If the multicast communication range of a piece of mappinginformation is narrower than that of a different piece of mappinginformation, the substrate-network multicast addresses of these piecesof mapping information can be integrated into that of the differentpiece of mapping information.

In addition, examples of the predetermined event (integration timing)will be listed as follows:

(1) a regular check;

(2) when the substrate multicast addresses are depleted or when thenumber of usable substrate multicast addresses reaches a certain numberor less; and

(3) when mapping information is updated.

When the multicast mapping unit 12 is notified by the mappinginformation integration unit 37 of mapping information changed by theintegration, the multicast mapping unit 12 updates the mappinginformation in the multicast mapping information storage unit 13 andrequests a different packet forwarding apparatus(es) to synchronize andupdate the corresponding mapping information via the multicast mappinginformation sharing unit 15. In addition, based on the mappinginformation changed by the integration, the multicast mapping unit 12changes a multicast report (join) address.

In addition, if the multicast mapping unit 12 cannot find any mappinginformation that uses the same substrate multicast address after thechange of the report(join) address, the multicast mapping unit 12outputs a leave message in which the substrate multicast address is set.

As described above, according to the present exemplary embodiment, it ispossible to reduce the chance of depletion of substrate multicastaddresses, in addition to the advantageous effects provided by the firstexemplary embodiment.

Fourth Exemplary Embodiment

Next, a fourth exemplary embodiment obtained by adding the mapping 1505information integration function to the above second exemplaryembodiment will be described. FIG. 32 illustrates a configuration of apacket forwarding apparatus and external apparatuses according to thefourth exemplary embodiment of the present invention. As illustrated inFIG. 32, a mapping information integration apparatus 47 is added to theconfiguration in which a packet forwarding apparatus 1D and a multicastmapping management apparatus 46 are connected to each other that areconfigured as illustrated in FIG. 18. In the example in FIG. 32, themulticast mapping management apparatus 46 and the mapping informationintegration apparatus 47 are illustrated as separate apparatuses.However, these apparatuses may be integrated and configured as a singleapparatus.

The mapping information integration apparatus 47 acquires mappinginformation from the multicast mapping management apparatus 46 andsearches for pieces of mapping information having the same packetforwarding apparatuses participating in respective groups. If themapping information integration apparatus 47 finds such pieces ofmapping information, the mapping information integration apparatus 47requests the multicast mapping management apparatus 46 to integrate themapping information.

If the multicast mapping management apparatus 46 integrates the mappinginformation, the multicast mapping management apparatus 46 notifies amulticast mapping unit(s) 22 in a different packet forwardingapparatus(es) affected by the integration of the mapping information ofthe mapping information changed as a result of the integration.

When notified, the multicast mapping unit(s) 22 updates the mappinginformation in the multicast mapping information storage unit(s) 13. Inaddition, based on the changed mapping information, the multicastmapping unit(s) 22 changes a multicast report (join) address.

Next, a specific operation performed by this configuration according tothe fourth exemplary embodiment will be described with reference toFIGS. 33 to 36. As in the first exemplary embodiment, a Video VM 1, aVideo VM 2, and a Video VM 3 are streaming servers, and Client VMs 1-1,2-1, 2-2, and 3-1 are clients that receive streaming data from thesestreaming servers. A router 500 is a multicast router having an IPmulticast function. In addition, TEPs (apparatuses) 501 to 503 in FIGS.33 to 36 are each configured by the packet forwarding apparatus 1Daccording to the fourth exemplary embodiment. A connection server 509serves as the multicast mapping management apparatus 46 and the mappinginformation integration apparatus 47. In addition, since representationsof the other terms and messages are the same as those in the firstexemplary embodiment, description thereof will be omitted.

FIG. 33 illustrates mapping information held in the multicast mappingmanagement apparatus 46 in the connection server 509 after multicastcommunication control for each streaming has been performed. Namely,225.0.0.1 is mapped with 238.0.0.1, and the TEPs (packet forwardingapparatuses) 501 and 502 belong to this mapping information. Inaddition, 226.0.0.1 is mapped with 238.0.0.2, and the TEPs (packetforwarding apparatuses) 501 and 503 belong to this mapping information.In addition, 227.0.0.1 is mapped with 238.0.0.3, and the TEPs (packetforwarding apparatuses) 501 and 502 belong to this mapping information.

The mapping information integration apparatus 47 in the connectionserver 509 receives mapping information from the multicast mappingmanagement apparatus 46 and searches for mapping information that can beintegrated. As a result, in this example, since the members in themapping information including 225.0.0.1 and the members in the mappinginformation including 227.0.0.1 are the same, the mapping informationintegration apparatus 47 determines that these pieces of mappinginformation can be integrated. The mapping information integrationapparatus 47 in the connection server 509 selects these two pieces ofmapping information as integration targets and requests the multicastmapping management apparatus 46 in the connection server 509 tointegrate the mapping information. In this example, the mappinginformation integration apparatus 47 requests the multicast mappingmanagement apparatus 46 to integrate the mapping information by changingthe substrate multicast address in the mapping information including227.0.0.1 into that in the mapping information including 225.0.0.1.

After integrating the mapping information, the multicast mappingmanagement apparatus 46 in the connection server 509 transmits a mappinginformation update message “Shared change 227.0.0.1 238.0.0.1” to theTEPs (packet forwarding apparatuses) 501 and 502, which are the membersin the mapping information before and after the integration. Themulticast mapping units 22 in the TEPs (packet forwarding apparatuses)501 and 502 update the corresponding mapping information, based on themapping information update message. In this way, both of theencapsulation about 225.0.0.1 and the encapsulation about 227.0.0.1 areperformed by using 238.0.0.1 (see FIG. 34).

Subsequently, since the members corresponding to 238.0.0.3 used with theoriginal 227.0.0.1 are deleted when the mapping information is updated,by transmitting a leave message “IGMP Leave 238.0.0.3” via the packetencapsulation units 14, the multicast mapping units 22 in the TEPs(packet forwarding apparatuses) 501 and 502 can start leave processing(see FIG. 35).

As a result, as illustrated in FIG. 36, the two pieces of mappinginformation including 225.0.0.1 and 227.0.0.1, respectively, have thesame substrate multicast address 238.0.0.1. As described above, if thereare multicast communications that use different virtual-networkmulticast addresses and that use the same communication range, thecommunications can be performed by using the same substrate-networkmulticast address.

In FIG. 36, the clients 512 and 532 receive only the respectivemulticast communications. Such communication control can be realized byapplying an IGMP snooping technique to the TEP apparatuses.

As described above, according to the present exemplary embodiment, as inthe third exemplary embodiment, it is possible to reduce the chance ofdepletion of substrate multicast addresses.

Finally, in order to utilize the configurations disclosed above moreefficiently, a combination with external apparatuses will be described.In IP multicast, for example, the utilization purpose of a global IPmulticast address area is generally defined. When such an area is used,the impact caused by a communication with the outside could cause aproblem. In such case, a multicast router may be caused to performfiltering so that only certain multicast communications are connected toan external network and multicast addresses using mapping purpose aredropped. In this way, the impact that involves external machines can beseparated. Thus, it is clear that use of a global IP multicast addressarea for mapping purposes is not problematic.

While various exemplary embodiments of the present invention have thusbeen described, the present invention is not limited thereto. Furthervariations, substitutions, or adjustments may be made without departingfrom the basic technical concept of the present invention. For example,the configurations of the networks, the configurations of the elements,and the representation modes of the messages illustrated in the drawingsare used merely as examples to facilitate understanding of the presentinvention, not to limit the present invention to the configurationsillustrated in these drawings.

The above packet forwarding apparatuses 1 and 1A to 1D may be realizedby OpenFlow switches in NPL 3. In this case, the functions of the abovepacket forwarding apparatuses 1 and 1A to 1D may be realized by causinga centralized control apparatus(es) to set control information in thepacket forwarding apparatuses 1 and 1A to 1D. For example, the functionof determining whether a packet(s) is a multicast packet(s) may berealized by setting a flow entry(ies) in the packet forwardingapparatuses 1 and 1A to 1D. In the flow entry(ies), a match condition(s)for determining whether a packet(s) is a multicast packet(s) isassociated with an operation (instruction) performed when a packet(s) isa multicast packet(s).

In addition, each unit (processing means) in the packet forwardingapparatuses illustrated in the respective drawings may be realized by acomputer program which causes a computer that constitutes an individualone of the packet forwarding apparatuses to use its hardware and performcorresponding processing described above.

Finally, suitable modes of the present invention will be summarized.

[Mode 1]

(See the packet forwarding apparatus according to the above firstaspect)

[Mode 2]

The packet forwarding apparatus according to mode 1, further including:a multicast mapping information sharing unit that notifies a differentpacket forwarding apparatus(es) of a content(s) of change of a piece(s)of mapping information stored in the multicast mapping informationstorage unit.[Mode 3]The packet forwarding apparatus according to mode 2,wherein, when the multicast mapping information sharing unit is notifiedof a content(s) of change of a piece(s) of mapping information thatconflicts with a piece(s) of mapping information held in itscorresponding packet forwarding apparatus from a different packetforwarding apparatus(es), the multicast mapping information sharing unitperforms an arbitration operation based on a predetermined rule.[Mode 4]The packet forwarding apparatus according to mode 1,wherein the multicast mapping unit uses a multicast address providedfrom an external multicast mapping management apparatus as the secondmulticast address.[Mode 5]The packet forwarding apparatus according to mode 4,wherein the multicast mapping unit manages a member(s) in a multicastgroup(s) in association with the piece(s) of mapping information, andwherein, if no member exists in the group(s), the multicast mapping unitrequests the multicast mapping management apparatus to delete thecorresponding piece(s) of mapping information.[Mode 6]The packet forwarding apparatus according to any one of modes 1 to 4,wherein the multicast mapping unit manages a member(s) in a multicastgroup(s) in association with the piece(s) of mapping information, andwherein the packet forwarding apparatus further includes:a mapping information integration unit that selects, from among all thepieces of mapping information, pieces of mapping information having thesame members in respective multicast groups and integrates the selectedpieces of mapping information so that the selected pieces of mappinginformation share a second multicast address.[Mode 7](See the control apparatus according to the above second aspect)[Mode 8](See the communication system according to the above third aspect)[Mode 9](See the communication method according to the above fourth aspect)[Mode 10](See the program according to the above fifth aspect)The above Modes 7 to 10 can be expanded in the same way as mode 1 isexpanded to modes 2 to 6.

The disclosure of each of the above PTL and NPLs is incorporated hereinby reference thereto. Modifications and adjustments of the exemplaryembodiments and the examples are possible within the scope of theoverall disclosure (including the claims) of the present invention andbased on the basic technical concept of the present invention. Inaddition, various combinations and selections of various disclosedelements (including the elements in each of the claims, exemplaryembodiments, examples, drawings, etc.) are possible within the scope ofthe claims of the present invention. Namely, the present invention ofcourse includes various variations and modifications that could be madeby those skilled in the art according to the overall disclosureincluding the claims and the technical concept. In particular, thepresent description discloses numerical value ranges. However, even ifthe description does not particularly disclose arbitrary numericalvalues or small ranges included in the ranges, these values and rangesshould be deemed to have been specifically disclosed.

REFERENCE SIGNS LIST

-   1, 1A to 1D packet forwarding apparatus-   11 multicast determination unit-   12, 22 multicast mapping unit-   13 multicast mapping information storage unit-   14 packet encapsulation unit-   15 multicast mapping information sharing unit-   18 virtual-network interface-   19 substrate-network interface-   26, 46 multicast mapping management apparatus-   37 mapping information integration unit-   47 mapping information integration apparatus-   111, 121, 211, 221, 311, 321, 411, 421, 511, 521, 531 Video VM-   112, 122, 212, 213, 222, 223, 312, 313, 322, 323, 412, 413, 422,    423, 512, 532, 522, 523 Client VM-   101 to 103, 201 to 203, 301 to 303, 401 to 403, 501 to 503 TEP    (apparatus)-   100, 200, 300, 400, 500 router (multicast router)-   409, 509 connection server (multicast mapping management apparatus)

The invention claimed is:
 1. A packet forwarding apparatus, comprising:a processor; and a non-transitory computer-readable data storage mediumconfigured to: encapsulate a multicast packet using at least one pieceof mapping information among pieces of mapping information for amulticast communication; and integrate the pieces of mapping informationhaving a same multicast communication range, wherein the multicastpacket is encapsulated using the integrated pieces of mappinginformation.
 2. The packet forwarding apparatus according to claim 1,further comprising: a storage device to hold the pieces of mappinginformation.
 3. The packet forwarding apparatus according to claim 1,wherein, the multicast communication is a multicast communication in avirtual network obtained by logically dividing a substrate network; thepiece of mapping information includes a first multicast address used inthe virtual network, a second multicast address used in the substratenetwork, and a member information which indicates a member participatingin the multicast communication; and the same multicast communicationrange is identified using the member information and the secondmulticast addresses included in the mapping information.
 4. The packetforwarding apparatus according to claim 3, wherein, parts of the mappinginformation having a same member information among pieces of mappinginformation are integrated.
 5. The packet forwarding apparatus accordingto claim 3, the second multicast address in one the pieces of mappinginformation having a same member information is integrated into thesecond multicast address in another one of the pieces of mapping.
 6. Thepacket forwarding apparatus according to claim 2, pieces of mappinginformation having a same member information among the pieces of mappinginformation are retrieved when a new piece of mapping information isadded.
 7. A communication system, comprising: a packet forwardingapparatus(es) comprising: a processor; a non-transitorycomputer-readable data storage medium configured to: encapsulate amulticast packet using at least one piece of mapping information amongpieces of mapping information for a multicast communication; andintegrate the pieces of mapping information having a same multicastcommunication range; and a server providing a virtual machine thatperforms a multicast communication via the packet forwarding apparatus,wherein the multicast packets is encapsulated using the integratedpieces of mapping information.
 8. A communication method, comprising:storing pieces of mapping information for a multicast communication;encapsulating a multicast packet using at least one piece of mappinginformation among the pieces of mapping information; and integratingpieces of mapping information having a same multicast communicationrange, wherein the multicast packet is encapsulated by using theintegrated pieces of mapping information.